package Other;

import java.util.*;

public class leet_704 {
    public static void main(String[] args) {

    }
}


class Solution_704 {
    public int search(int[] nums, int target) {
        int result = searchWhile(nums, target);
        return result;
    }


    /**
     * 二分查找 迭代法
     * @param nums   有序数组
     * @param target
     * @return
     */
    public int searchWhile(int[] nums, int target){
        // 尾指针
        int low = 0;
        // 头指针
        int height = nums.length-1;
        // 中间值
        int medium = 0;
        // 无法匹配的情况
        if(low>height || nums[low]>target || nums[height]<target){return -1;}

        while(low<=height){
            medium = (low+height)/2;
            if(nums[medium]<target){
                // 中间值 大于 目标 说明目标在右边
               low = medium+1;
            }else if(nums[medium]>target){
                // 中间值 小于 目标 说明目标在左边
                height = medium-1;
            }else {
                return medium;
            }
        }
        return -1;
    }
}